home *** CD-ROM | disk | FTP | other *** search
/ STraTOS 1997 April & May / STraTOS 1 - 1997 April & May.iso / CD01 / INTERNET / SITES / RAND / DVIEW000.LZH / HASH.C < prev    next >
Encoding:
C/C++ Source or Header  |  1995-08-14  |  1.2 KB  |  67 lines

  1. #define C
  2.  
  3. #define SKY_COLOR       1
  4. #define FLOOR_COLOR     2
  5. #define WALL_COLOR      3
  6. #define RED_COLOR       4
  7. #define LEDGE_COLOR     5
  8.  
  9. #define UPPER_TYPE      0
  10. #define WALL_TYPE       1
  11. #define LOWER_TYPE      2
  12.  
  13. #include <stdio.h>
  14.  
  15. #include "view.h"
  16.  
  17. char hash(side *ThisSide, int wall_type)
  18. {
  19.    unsigned char ret = 0;
  20.    char *tm_name;
  21.    short i;
  22.    static side *LastSide = 0;
  23.  
  24.    if (ThisSide) {
  25.       ret = 5;
  26.       LastSide = ThisSide;
  27.  
  28.       switch(wall_type) {
  29.       case WALL_TYPE:
  30.          tm_name = ThisSide->main_tx;
  31.          break;
  32.       case UPPER_TYPE:
  33.          tm_name = ThisSide->upper_tx;
  34.          break;
  35.       case LOWER_TYPE:
  36.          tm_name = ThisSide->lower_tx;
  37.          break;
  38.       }
  39.    } else {
  40.       ret = 1;
  41.       switch(wall_type) {
  42.       case UPPER_TYPE:
  43.          tm_name = Sector_Array[LastSide->sector].ceiling_tx;
  44.          break;
  45.       case LOWER_TYPE:
  46.          tm_name = Sector_Array[LastSide->sector].floor_tx;
  47.          break;
  48.       }
  49.    }
  50.  
  51.    for(i = 0;i < 8;i++) {
  52. #if 0
  53.       if (*tm_name)
  54.          putchar(*tm_name);
  55. #endif
  56.       ret ^= *tm_name++;
  57. #if 0
  58.       ret = (ret << 1) + (ret >> 7);
  59. #endif
  60.    }
  61. #if 0
  62.    printf("\n");
  63. #endif
  64.  
  65.    return(ret);
  66. }
  67.